Computers have now become an integral part of our society both in business and in residential settings. Almost every business of sufficient size in Germany, the United States, and other developed countries has one or more computers to assist them in running their businesses. Similarly, many families in those countries now have computers at home that are used to run various applications, including games.
Some attribute the popularity of computers to the Internet. The Internet provides people with a ready access to vast amounts of data. Many people now get their news, sports, stock, entertainment, and other information primarily from the Internet. But businesses have also embraced the Internet. The Internet provides the opportunity for computers to communicate instantly with other computers or individuals. Business processes that were once restricted to intranets and their users are now moving to the Internet. Accordingly, companies are moving more and more of their data to electronic forms. In addition, companies have amassed huge amounts of data in an effort to understand their business, improve performance, and build stronger employee, customer, and partner relationships.
Today, distributed computing systems are widely used by various organizations to accommodate the ever-increasing demand for the computer resources from consumers and businesses alike. In a distributed computing system, nodes (e.g., computers, processors, servers, etc.) are grouped or clustered to perform certain functions. Generally, a cluster is a collection of computer nodes that work together to perform a function, so that in many respects the cluster can be viewed as a single computer. The nodes of a cluster are usually coupled by a network, such as the Internet or an intranet. The cluster may be managed dynamically.
A dynamic cluster is a cluster system that is managed by a controller (or manager) that dynamically optimizes the performance of the cluster. Moreover, a dynamic cluster (specifically, its controller) may start and stop individual instances of application servers as required. A dynamic cluster may also dynamically balance the workloads of the nodes of the cluster based on performance information collected from cluster nodes. As a consequence, dynamic clusters optimize the use of the processing capabilities of the computers in the clusters. When compared to a single computer hosting a single application server, the dynamic cluster may provide increased performance and overall lower total cost of ownership by better utilizing the existing processing capabilities of the cluster.
One example of a dynamic cluster system is provided by SAP, AG's NetWeaver Adaptive Computing infrastructure. The Adaptive Computing infrastructure enables the dynamic assignment of hardware resources to serve specific application services. In this way, SAP NetWeaver enables an Adaptive Computing infrastructure to provide business solutions based on SAP NetWeaver running at peak efficiency. In most cases, SAP's Adaptive Computing provides lower total cost of ownership by optimizing processing (e.g., better server utilization).
Virtualization technology provides another mechanism for optimizing processing. Virtualization technology provides a software layer that when executed allows multiple virtual machines with, in some cases, different operating systems to run side-by-side with other virtual machines running on the same physical machine (e.g., a node, computer, processor, server, and the like). The virtualization software provides a so-called “container” that wraps and isolates the virtual machine from other virtual machines. For example, in a server complex including fifty physical servers, each of which hosts its own application server, virtualization permits the server complex to instead operate with, for, example, twenty-five physical servers, each of which includes virtualization software providing two virtual machines for the application servers. In both cases, fifty application servers are deployed, but with virtualization, the number of physical servers is reduced to twenty-five.
Virtualization software may also provide one or more of the following functions: running multiple virtual machines with different operating systems at the same time on the same physical machine; generating fully configured isolated virtual machines with a set of virtual hardware including an operating system and applications; saving, copying, and provisioning of virtual machines; and moving virtual machines from one physical machine to another physical machine for workload management.
When a virtual machine is used, the virtual machine may include an operating system and one or more applications. An operating system (OS) is the program that, after being initially loaded into a computer by a boot program, manages other programs on the computer. The other programs (also referred to as application programs or programs) may use the operating system by making requests for services through one or more application program interfaces (APIs) of the operating system. An application may perform one or more specific functions (or tasks) directly for a user or, in some cases, another program or application program. Examples of applications include spreadsheets, word processing, browsers, databases, and the like. For example, a virtual machine may include an operating system, such as Linux or Windows Vista, and one or more application programs, such as a browser, all of which operate in the so-called “container” provided by the virtual machine.
In some cases, the virtual machine may also include some data for use by the application. When this is the case, the virtual machine may be referred to as a virtual appliance. The phrase “virtual appliance” refers to an example of a virtual machine that may include the application, operating system, and other items (e.g., data, drivers, and etc.) to enable simplification of the installation and the configuration process associated with running the application. An example of a virtual appliance is the MediaWiki software that powers Wikipedia, which is available as a virtual appliance. The MediaWiki appliance contains all the necessary software, including operating system, database, and MediaWiki, to run a wiki installation as a so-called “black box.”